]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
layout: Allow adding already parented actors for chrome tracking
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 14 Jul 2017 20:23:53 +0000 (22:23 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Sun, 16 Jul 2017 16:08:15 +0000 (18:08 +0200)
let trackChrome accept actors that are not children of chrome actors.
this will be useful for the MetaCloseDialog in gnome-shell, which
is already included in the MetaWindowGroup, but needs to be tracked
as chrome for the dialog to receive pointer events on X11.

https://bugzilla.gnome.org/show_bug.cgi?id=762083

js/ui/layout.js

index 4c11e1d7a8952a4945b3f6bf5ca91c2b76ba8b56..ebf09c24b4e5a233fb3b7af6a2530364843ac266 100644 (file)
@@ -769,8 +769,7 @@ const LayoutManager = new Lang.Class({
     // @actor: a descendant of the chrome to begin tracking
     // @params: parameters describing how to track @actor
     //
-    // Tells the chrome to track @actor, which must be a descendant
-    // of an actor added via addChrome(). This can be used to extend the
+    // Tells the chrome to track @actor. This can be used to extend the
     // struts or input region to cover specific children.
     //
     // @params can have any of the same values as in addChrome(),
@@ -783,10 +782,9 @@ const LayoutManager = new Lang.Class({
             ancestor = ancestor.get_parent();
             index = this._findActor(ancestor);
         }
-        if (!ancestor)
-            throw new Error('actor is not a descendent of a chrome actor');
 
-        let ancestorData = this._trackedActors[index];
+        let ancestorData = ancestor ? this._trackedActors[index]
+                                    : defaultParams;
         if (!params)
             params = {};
         // We can't use Params.parse here because we want to drop